package com.ehome.poct.core.pasre.report.symbol;


import com.ehome.poct.base.api.enums.StripTypeEnums;
import com.ehome.poct.core.pasre.report.AbstractFactory;

import java.util.HashMap;
import java.util.Map;

/**
 * @auther: kuiba.peng
 * @date: 2022/11/10 14:39
 * @description:
 */
public class SymbolStrategyFactory extends AbstractFactory<SymbolStrategy> {

    private final static Map<StripTypeEnums, SymbolStrategy> SYMBOL_STRATEGY_MAP = new HashMap<>();

    static {
        SYMBOL_STRATEGY_MAP.put(StripTypeEnums.DEFAULT_TYPE, new DefaultSymbolStrategy());
        SYMBOL_STRATEGY_MAP.put(StripTypeEnums.HBA1C, new HBA1CSymbolStrategy());
        SYMBOL_STRATEGY_MAP.put(StripTypeEnums.MALB, new MALBSymbolStrategy());
        SYMBOL_STRATEGY_MAP.put(StripTypeEnums.HMALB, new HMALBSymbolStrategy());
    }

    private static final SymbolStrategyFactory INSTANCE = new SymbolStrategyFactory();


    private SymbolStrategyFactory() {
        super(SYMBOL_STRATEGY_MAP);
    }

    public static SymbolStrategyFactory getINSTANCE() {
        return INSTANCE;
    }
}
